SELECT * FROM (
    SELECT 
        i.name AS item_name,
        h.profit,
        h.roi,
        h.speed,
        h.last_update,
        RANK() OVER (ORDER BY h.profit DESC) as rank_profit,
        RANK() OVER (ORDER BY h.roi DESC) as rank_roi,
        RANK() OVER (ORDER BY h.speed DESC) as rank_speed
    FROM item_behaivor h
    JOIN item i ON h.item_id = i.id
    WHERE h.last_update >= DATE_SUB(CURDATE(), INTERVAL 90 DAY)
) as ranked_items
WHERE rank_profit <= 10 
   OR rank_roi <= 10 
   OR rank_speed <= 10
ORDER BY rank_speed ASC LIMIT 10;